# Title:Encontrar el numero maximo en una lista de  de 15 numeros				Filename: Ejercicio_12version2.s
# Autho: Hernandez Barrios 	Eric Harim 									Date: 13 / Mar / 2017
# Description: Maximo de un numero en una lista
# Input: -
# Output: Max
@Ejercicio_12version2
@ Encontrar el maximo de una lista de 15 numeros impares


@ r1 - Utilizado para mantener la direccion de los elementos de datos
@ r0 - Utilizado para los datos mas grandes
@ r3 - Utilizado para el elemento de dato actual
#Data Segment
.section        .data

numbers:                          @ Los datos que vamos a utilizar
.long  1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

.globl _start
#Code Segment
_start:
ldr %r1, =numbers          @ Establecer r1 para iniciar la direccion de los nunmeros
ldr %r3, [%r1]             @ Carga r3 con el primer numero
mov %r0, %r3               @ Al comienzo el numero actual debe ser el mas grande

loop:
  cmp %r3, $0              @ Compruebe si r3 tiene cero (final de la lista)
  beq exit                 @ Si es asi, salir
  ldr %r3, [%r1,#4]!       @ Cargarmos el siguiente dato en r3
  cmp %r3, %r0             @ Comparamos r0 y r3
  ble loop                 @ Vamos al inicio del bucle si r3 <= r0
  mov %r0, %r3             @ De lo contario poner r3 en r0
  bal loop                 @ Vamos al inicio del bucle (siempre la rama)
  
  exit:                    @ El valor mas grande esta ahora en 0
  mov %r7, $1              @ Preparado para salir
  svc $0                   @ Despertamos el kernel
  .end                     @ Marcamos el final del codigo
